In a number of industries, three-dimensional (3D) models may be used to represent various objects. For example, any industry that uses or sells objects may need to understand how different objects interact or how they might appear together. The generation of such a 3D model may require that a system obtain an image of the surface of an object, which may be rendered or displayed as a two-dimensional image via 3D rendering or displayed as a three-dimensional image.
Although 3D models may be solid models that define a volume of the object, they more likely include a shell or boundary that represent a surface of the object, with the image obtained for an angle mapped to that surface. These types of boundary representation 3D models are commonly used in industries that use 3D models.
Various techniques exist for generating 3D models from objects. For example, a given object may be scanned from a number of different angles, and the scanned images can then be combined to generate the 3D image of the object. In some embodiments, the scanned image information may include a matrix of images taken from each angle, which may be obtained from an array of cameras. However, there are a number of problems and inefficiencies in mapping images from a matrix of images into a single 3D model. For example, an image's relative position to other images in the array of images may be hard to determine. This is especially true if the object being modeled has few or no distinguishing marks.
In some conventional methods, a system may use structured light patterns to match up images and determine a geometry of the object. However, this technique can be inaccurate if the object being modeled is transparent or reflective. One possible solution to this problem is to apply a coating to the object. For example, images of the object can be obtained first without the coating in order to obtain visual information for the object. The coating is then applied to the object and a second set of images can be obtained using structured light patterns, which may be used to calculate a geometry and/or texture of the object. However, it is difficult to coat the object without moving it, which presents further difficulties in mapping the visual information obtained from the first set of images to the geometry calculated from the second set of images as the positioning must be reconciled.
Embodiments of the invention address these and other problems, individually and collectively.